Deleting an object due to a DELETE Object request or PUT (Update) Object request in running storage service in a multiple datacenter (MDC) environment is a complex task. Multiple DELETE and PUT requests may arrive during a small window. In addition, the requests may be interleaved. Furthermore, subsequent requests sent to remote datacenters may arrive out of sequence and some of the requests may fail. A distributed storage system needs to handle these cases with deterministic behavior and needs to achieve eventual consistency within a predictable period.
If distributed system architecture does not handle the DELETE operation properly, there can be several use cases resulting in unintended data losses that cannot be recovered.